G_DEFINE_TYPE_WITH_PRIVATE (StButton, st_button, ST_TYPE_BIN);
-static GType st_button_accessible_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StButtonAccessible,
+ st_button_accessible,
+ ST, BUTTON_ACCESSIBLE,
+ StWidgetAccessible)
static void
st_button_update_label_style (StButton *button)
#define ST_TYPE_BUTTON_ACCESSIBLE st_button_accessible_get_type ()
-#define ST_BUTTON_ACCESSIBLE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
- ST_TYPE_BUTTON_ACCESSIBLE, StButtonAccessible))
-
-#define ST_IS_BUTTON_ACCESSIBLE(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
- ST_TYPE_BUTTON_ACCESSIBLE))
-
-#define ST_BUTTON_ACCESSIBLE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), \
- ST_TYPE_BUTTON_ACCESSIBLE, StButtonAccessibleClass))
-
-#define ST_IS_BUTTON_ACCESSIBLE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), \
- ST_TYPE_BUTTON_ACCESSIBLE))
-
-#define ST_BUTTON_ACCESSIBLE_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), \
- ST_TYPE_BUTTON_ACCESSIBLE, StButtonAccessibleClass))
-
-typedef struct _StButtonAccessible StButtonAccessible;
-typedef struct _StButtonAccessibleClass StButtonAccessibleClass;
-
-struct _StButtonAccessible
+typedef struct _StButtonAccessible
{
StWidgetAccessible parent;
-};
+} StButtonAccessible;
-struct _StButtonAccessibleClass
-{
- StWidgetAccessibleClass parent_class;
-};
/* AtkObject */
static void st_button_accessible_initialize (AtkObject *obj,
gpointer data);
-G_DEFINE_TYPE (StButtonAccessible, st_button_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
+G_DEFINE_FINAL_TYPE (StButtonAccessible, st_button_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
static const gchar *
st_button_accessible_get_name (AtkObject *obj)
G_DEFINE_TYPE_WITH_PRIVATE (StEntry, st_entry, ST_TYPE_WIDGET);
-static GType st_entry_accessible_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StEntryAccessible,
+ st_entry_accessible,
+ ST, ENTRY_ACCESSIBLE,
+ StWidgetAccessible)
static void
st_entry_set_property (GObject *gobject,
/******************************************************************************/
#define ST_TYPE_ENTRY_ACCESSIBLE (st_entry_accessible_get_type ())
-#define ST_ENTRY_ACCESSIBLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ST_TYPE_ENTRY_ACCESSIBLE, StEntryAccessible))
-#define ST_IS_ENTRY_ACCESSIBLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ST_TYPE_ENTRY_ACCESSIBLE))
-#define ST_ENTRY_ACCESSIBLE_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), ST_TYPE_ENTRY_ACCESSIBLE, StEntryAccessibleClass))
-#define ST_IS_ENTRY_ACCESSIBLE_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), ST_TYPE_ENTRY_ACCESSIBLE))
-#define ST_ENTRY_ACCESSIBLE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ST_TYPE_ENTRY_ACCESSIBLE, StEntryAccessibleClass))
-typedef struct _StEntryAccessible StEntryAccessible;
-typedef struct _StEntryAccessibleClass StEntryAccessibleClass;
-struct _StEntryAccessible
+typedef struct _StEntryAccessible
{
StWidgetAccessible parent;
-};
-
-struct _StEntryAccessibleClass
-{
- StWidgetAccessibleClass parent_class;
-};
+} StEntryAccessible;
-G_DEFINE_TYPE (StEntryAccessible, st_entry_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
+G_DEFINE_FINAL_TYPE (StEntryAccessible, st_entry_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
static void
st_entry_accessible_init (StEntryAccessible *self)
static void atk_value_iface_init (AtkValueIface *iface);
-G_DEFINE_TYPE_WITH_CODE(StGenericAccessible,
- st_generic_accessible,
- ST_TYPE_WIDGET_ACCESSIBLE,
- G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE,
- atk_value_iface_init));
+typedef struct _StGenericAccessible
+{
+ StWidgetAccessible parent_class;
+} StGenericAccessible;
+
+G_DEFINE_FINAL_TYPE_WITH_CODE (StGenericAccessible,
+ st_generic_accessible,
+ ST_TYPE_WIDGET_ACCESSIBLE,
+ G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE,
+ atk_value_iface_init));
/* Signals */
enum
{
G_BEGIN_DECLS
#define ST_TYPE_GENERIC_ACCESSIBLE (st_generic_accessible_get_type ())
-#define ST_GENERIC_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_GENERIC_ACCESSIBLE, StGenericAccessible))
-#define ST_GENERIC_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_GENERIC_ACCESSIBLE, StGenericAccessibleClass))
-#define ST_IS_GENERIC_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_GENERIC_ACCESSIBLE))
-#define ST_IS_GENERIC_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_GENERIC_ACCESSIBLE))
-#define ST_GENERIC_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_GENERIC_ACCESSIBLE, StGenericAccessibleClass))
-typedef struct _StGenericAccessible StGenericAccessible;
-typedef struct _StGenericAccessibleClass StGenericAccessibleClass;
-
-typedef struct _StGenericAccessiblePrivate StGenericAccessiblePrivate;
-
-struct _StGenericAccessible
-{
- StWidgetAccessible parent;
-
- StGenericAccessiblePrivate *priv;
-};
-
-struct _StGenericAccessibleClass
-{
- StWidgetAccessibleClass parent_class;
-};
-
-GType st_generic_accessible_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StGenericAccessible,
+ st_generic_accessible,
+ ST, GENERIC_ACCESSIBLE,
+ StWidgetAccessible)
AtkObject* st_generic_accessible_new_for_actor (ClutterActor *actor);
G_DEFINE_TYPE_WITH_PRIVATE (StLabel, st_label, ST_TYPE_WIDGET);
-static GType st_label_accessible_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StLabelAccessible,
+ st_label_accessible,
+ ST, LABEL_ACCESSIBLE,
+ StWidgetAccessible)
static void
st_label_set_property (GObject *gobject,
#define ST_TYPE_LABEL_ACCESSIBLE st_label_accessible_get_type ()
-#define ST_LABEL_ACCESSIBLE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
- ST_TYPE_LABEL_ACCESSIBLE, StLabelAccessible))
-
-#define ST_IS_LABEL_ACCESSIBLE(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
- ST_TYPE_LABEL_ACCESSIBLE))
-
-#define ST_LABEL_ACCESSIBLE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), \
- ST_TYPE_LABEL_ACCESSIBLE, StLabelAccessibleClass))
-
-#define ST_IS_LABEL_ACCESSIBLE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), \
- ST_TYPE_LABEL_ACCESSIBLE))
-
-#define ST_LABEL_ACCESSIBLE_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), \
- ST_TYPE_LABEL_ACCESSIBLE, StLabelAccessibleClass))
-
-typedef struct _StLabelAccessible StLabelAccessible;
-typedef struct _StLabelAccessibleClass StLabelAccessibleClass;
-
-struct _StLabelAccessible
-{
- StWidgetAccessible parent;
-};
-
-struct _StLabelAccessibleClass
-{
- StWidgetAccessibleClass parent_class;
-};
-
/* AtkObject */
static void st_label_accessible_initialize (AtkObject *obj,
gpointer data);
static const gchar * st_label_accessible_get_name (AtkObject *obj);
-G_DEFINE_TYPE (StLabelAccessible, st_label_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
+typedef struct _StLabelAccessible {
+ StWidgetAccessible parent_class;
+} StLabelAccessible;
+
+G_DEFINE_FINAL_TYPE (StLabelAccessible, st_label_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
static void
st_label_accessible_class_init (StLabelAccessibleClass *klass)
#define ST_TYPE_WIDGET_ACCESSIBLE st_widget_accessible_get_type ()
-#define ST_WIDGET_ACCESSIBLE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
- ST_TYPE_WIDGET_ACCESSIBLE, StWidgetAccessible))
+G_DECLARE_DERIVABLE_TYPE (StWidgetAccessible,
+ st_widget_accessible,
+ ST, WIDGET_ACCESSIBLE,
+ ClutterActorAccessible)
-#define ST_IS_WIDGET_ACCESSIBLE(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
- ST_TYPE_WIDGET_ACCESSIBLE))
-
-#define ST_WIDGET_ACCESSIBLE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), \
- ST_TYPE_WIDGET_ACCESSIBLE, StWidgetAccessibleClass))
-
-#define ST_IS_WIDGET_ACCESSIBLE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), \
- ST_TYPE_WIDGET_ACCESSIBLE))
-
-#define ST_WIDGET_ACCESSIBLE_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), \
- ST_TYPE_WIDGET_ACCESSIBLE, StWidgetAccessibleClass))
-
-typedef struct _StWidgetAccessible StWidgetAccessible;
typedef struct _StWidgetAccessibleClass StWidgetAccessibleClass;
-typedef struct _StWidgetAccessiblePrivate StWidgetAccessiblePrivate;
-struct _StWidgetAccessible
-{
- ClutterActorAccessible parent;
-
- /*< private >*/
- StWidgetAccessiblePrivate *priv;
-};
struct _StWidgetAccessibleClass
{
ClutterActorAccessibleClass parent_class;
};
-GType st_widget_accessible_get_type (void) G_GNUC_CONST;
G_END_DECLS
static void st_widget_accessible_initialize (AtkObject *obj,
gpointer data);
-struct _StWidgetAccessiblePrivate
+typedef struct _StWidgetAccessiblePrivate
{
/* Cached values (used to avoid extra notifications) */
gboolean selected;
* relationships between this object and the label
*/
AtkObject *current_label;
-};
+} StWidgetAccessiblePrivate;
G_DEFINE_TYPE_WITH_PRIVATE (StWidgetAccessible, st_widget_accessible, CLUTTER_TYPE_ACTOR_ACCESSIBLE)
static void
st_widget_accessible_init (StWidgetAccessible *self)
{
- StWidgetAccessiblePrivate *priv = st_widget_accessible_get_instance_private (self);
-
- self->priv = priv;
}
static void
st_widget_accessible_dispose (GObject *gobject)
{
StWidgetAccessible *self = ST_WIDGET_ACCESSIBLE (gobject);
+ StWidgetAccessiblePrivate *priv =
+ st_widget_accessible_get_instance_private (self);
- if (self->priv->current_label)
- {
- g_object_unref (self->priv->current_label);
- self->priv->current_label = NULL;
- }
+ g_clear_object (&priv->current_label);
G_OBJECT_CLASS (st_widget_accessible_parent_class)->dispose (gobject);
}
StWidget *widget = NULL;
StWidgetPrivate *widget_priv;
StWidgetAccessible *self = NULL;
+ StWidgetAccessiblePrivate *priv;
result = ATK_OBJECT_CLASS (st_widget_accessible_parent_class)->ref_state_set (obj);
widget = ST_WIDGET (actor);
self = ST_WIDGET_ACCESSIBLE (obj);
+ priv = st_widget_accessible_get_instance_private (self);
widget_priv = st_widget_get_instance_private (widget);
/* priv->selected should be properly updated on the
* ATK_STATE_SELECTED notification callbacks
*/
- if (self->priv->selected)
+ if (priv->selected)
atk_state_set_add_state (result, ATK_STATE_SELECTED);
- if (self->priv->checked)
+ if (priv->checked)
atk_state_set_add_state (result, ATK_STATE_CHECKED);
/* On clutter there isn't any tip to know if a actor is focusable or
if (!accessible)
return;
- priv = ST_WIDGET_ACCESSIBLE (accessible)->priv;
+ priv = st_widget_accessible_get_instance_private (ST_WIDGET_ACCESSIBLE (accessible));
found = st_widget_has_style_pseudo_class (widget,
"selected");
if (!accessible)
return;
- priv = ST_WIDGET_ACCESSIBLE (accessible)->priv;
+ priv = st_widget_accessible_get_instance_private (ST_WIDGET_ACCESSIBLE (accessible));
/* We only call this method at startup, and when the label changes,
* so it is fine to remove the previous relationships if we have the